package DEEPERsource.DEEPERsource.source.graph;

import parser.StructuredSentence;
import jung.entities.Graph;

/**
 * Interface for separating library-specific 
 * graph implementation logic from the parser adapters.
 * The only dependency that is present is return types,
 * but I don't want be too general.
 * 
 * This and Parser interfaces look quite the same, but 
 * I beleive there are different intentions why they are exist.
 * While former serves to hide graph construction process,
 * latter abstracts the parser.
 * @author tfayruzo
 *
 * @param <T1>
 * @param <T2>
 * @param <T3>
 */
public interface GraphFactory<T1,T2,T3> extends Keys {

	public Graph getDepGraph(T1 depTree);
	public Graph getParseGraph(T2 parseTree);
	public StructuredSentence getSentence(T3 sentence);
}
